/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.sadhar.sipp.rencanapendapatanuangformulirmahasiswabaru;

import java.util.List;
import java.util.Map;

import org.sadhar.errhandler.ClassAntiNull;
import org.sadhar.sia.common.ClassConnection;
import org.sadhar.sia.common.ClassUtility;

/**
 * 
 * @author Yohan Hardinugroho
 */
public class RencanaPendapatanUangFormulirMahasiswaBaruDAOImpl implements
	RencanaPendapatanUangFormulirMahasiswaBaruDAO {

    @Override
    public List<Map> listDetailByTahunAndKodeUnitKerja(String tahun,
	    String kodeUnitKerja) {
	String sql = " SELECT p.tahunAnggaran,p.kodeUnitKerja,p.idPosAnggaranPendapatanUnit,a.kodeGelombangPMB, "
		+ " a.jumlahFormulirYangTerjual,a.harga,g.nm_gelombang,g.aktifasi,g.kelompok "
		+ " FROM ppmk.posAnggaranPendapatanUnit p inner join "
		+ " ppmk.anggaranPendapatanFormulirPMB a on (p.idPosAnggaranPendapatanUnit = "
		+ " a.idPosAnggaranPendapatanUnit and p.idPosPendapatan='8') inner join kamus.gelombang g on "
		+ " (g.kd_gelombang = a.kodeGelombangPMB) "
		+ " where p.tahunAnggaran=? and p.kodeUnitKerja = ?";
	return ClassConnection.getJdbc().queryForList(
		sql,
		new Object[] { ClassUtility.quote(tahun),
			ClassUtility.quote(kodeUnitKerja) });
    }

    /// perubahan 31-10-2009
       public List<Map> listDetailByTahun(String tahun){
     String sql = " SELECT a.kodeGelombangPMB, "
		+ " a.jumlahFormulirYangTerjual,a.harga,a.tahun,g.nm_gelombang,g.aktifasi,g.kelompok "
		+ " FROM "
		+ " ppmk.anggaranPendapatanFormulirPMB a  "
		+ " inner join kamus.gelombang g on "
		+ " (g.kd_gelombang = a.kodeGelombangPMB) "
		+ " where a.tahun=?";
     
      return ClassConnection.getJdbc().queryForList(
		sql,
		new Object[] { ClassUtility.quote(tahun) });
    }
    ////////////
     

    @Override
    public void deleteByIdPosAnggaranPendapatanUnitAndKodeGelombangPMB(
	    int idPosAnggaranPendapatanUnit, String kodeGelombangPMB) {
	String sql = "Delete from ppmk.anggaranPendapatanFormulirPMB where idPosAnggaranPendapatanUnit=? and kodeGelombangPMB=?";
	// TODO Auto-generated method stub
	ClassConnection.getJdbc().update(
		sql,
		new Object[] { Integer.valueOf(idPosAnggaranPendapatanUnit),
			ClassUtility.quote(kodeGelombangPMB) });

    }

    ////// perubahan 31-10-2009

    public void deleteByTahunAndKodeGelombangPMB(
	    String Tahun, String kodeGelombangPMB) {
	String sql = "Delete from ppmk.anggaranPendapatanFormulirPMB where tahun=? and kodeGelombangPMB=?";
	// TODO Auto-generated method stub
	ClassConnection.getJdbc().update(
		sql,
		new Object[] { ClassUtility.quote(Tahun),
			ClassUtility.quote(kodeGelombangPMB) });

    }
    //////////////////

    @Override
    public int countByIdPosAnggaranPendapatanUnitAndKodeGelombangPMB(
	    int idPosAnggaranPendapatanUnit, String kodeGelombangPMB) {
	String sql = "select count(*) as jumlah from ppmk.anggaranPendapatanFormulirPMB a where a.idPosAnggaranPendapatanUnit=? and a.kodeGelombangPMB=?";
	// TODO Auto-generated method stub
	List<Map> resultList = ClassConnection.getJdbc().queryForList(
		sql,
		new Object[] { Integer.valueOf(idPosAnggaranPendapatanUnit),
			ClassUtility.quote(kodeGelombangPMB) });
	int jumlah = 0;
	for (Map m : resultList) {
	    jumlah = ClassAntiNull.AntiNullInt(m.get("jumlah"));
	}
	return jumlah;
    }


    /////perubahan 31-10-2009
     public int countByTahunAndKodeGelombangPMB(
	    String tahun, String kodeGelombangPMB) {
	String sql = "select count(*) as jumlah from ppmk.anggaranPendapatanFormulirPMB a where a.tahun=? and a.kodeGelombangPMB=?";
	// TODO Auto-generated method stub
	List<Map> resultList = ClassConnection.getJdbc().queryForList(
		sql,
		new Object[] { ClassUtility.quote(tahun),
			ClassUtility.quote(kodeGelombangPMB) });
	int jumlah = 0;
	for (Map m : resultList) {
	    jumlah = ClassAntiNull.AntiNullInt(m.get("jumlah"));
	}
	return jumlah;
    }
     //////////////////////

    @Override
    public void insert(RencanaPendapatanUangFormulirMahasiswaBaru object) {
	String sql = "insert into ppmk.anggaranPendapatanFormulirPMB (idPosAnggaranPendapatanUnit,kodeGelombangPMB,jumlahFormulirYangTerjual,harga) values (?,?,?,?)";

	ClassConnection.getJdbc().update(
		sql,
		new Object[] {
			Integer
				.valueOf(object
					.getIdPosAnggaranPendapatanUnit()),
			ClassUtility.quote(object.getKodeGelombangPMB()),
			Integer.valueOf(object.getJumlahFormulirYangTerjual()),
			Float.valueOf(object.getHarga()) });

    }

    ///////////perubahan 31-10-2009
       public void insertBaru(RencanaPendapatanUangFormulirMahasiswaBaru object) {
	String sql = "insert into ppmk.anggaranPendapatanFormulirPMB (kodeGelombangPMB,jumlahFormulirYangTerjual,harga,tahun) values (?,?,?,?)";

	ClassConnection.getJdbc().update(
		sql,
		new Object[] {

			ClassUtility.quote(object.getKodeGelombangPMB()),
			Integer.valueOf(object.getJumlahFormulirYangTerjual()),
			Float.valueOf(object.getHarga()),
                        ClassUtility.quote(object.getTahun())});

    }
     ////////////////

    @Override
    public void update(RencanaPendapatanUangFormulirMahasiswaBaru object) {
	String sql = "update ppmk.anggaranPendapatanFormulirPMB a set a.jumlahFormulirYangTerjual=?,a.harga=? where a.idPosAnggaranPendapatanUnit=? and a.kodeGelombangPMB=?";

	ClassConnection.getJdbc().update(
		sql,
		new Object[] {
			Integer.valueOf(object.getJumlahFormulirYangTerjual()),
			Float.valueOf(object.getHarga()),
			Integer
				.valueOf(object
					.getIdPosAnggaranPendapatanUnit()),
			ClassUtility.quote(object.getKodeGelombangPMB()) });

    }

    /////////////perubahan 31-10-2009
     public void updateBaru(RencanaPendapatanUangFormulirMahasiswaBaru object) {
	String sql = "update ppmk.anggaranPendapatanFormulirPMB a set a.jumlahFormulirYangTerjual=?,a.harga=? where a.tahun=? and a.kodeGelombangPMB=?";

	ClassConnection.getJdbc().update(
		sql,
		new Object[] {
			Integer.valueOf(object.getJumlahFormulirYangTerjual()),
			Float.valueOf(object.getHarga()),
			ClassUtility.quote(object
					.getTahun()),
			ClassUtility.quote(object.getKodeGelombangPMB()) });

    }
     ///////////////////////////

    /*
     * SELECT p.tahunAnggaran,p.kodeUnitKerja,a.kodeGelombangPMB,a.
     * jumlahFormulirYangTerjual,a.harga,g.nm_gelombang,g.aktifasi,g.kelompok
     * FROM ppmk.posAnggaranPendapatanUnit p inner join
     * ppmk.anggaranPendapatanFormulirPMB a on (p.idPosAnggaranPendapatanUnit =
     * a.idPosAnggaranPendapatanUnit) inner join kamus.gelombang g on
     * (g.kd_gelombang = a.kodeGelombangPMB) where p.tahunAnggaran='2009' and
     * p.kodeUnitKerja = '01002000'
     */
}
